<?php

class usuario_loginDialogsModel extends Object {

    public function __construct() {
        $this->LoadResource("html", 'html');
        $this->LoadModel('contato/alertas', 'al');
    }
    
    public function setModelName($name){
        $this->model_name = $name;
    }
    
    public function inserir($user){

        //prepara o email
        $ur      = $user['cod_usuario']."-".$user['confirmkey'];
        $link    = $this->html->getLink("usuario/login/confirmar/$ur");
        $assunto = "Cadastro de usuário";
        
        $this->LoadModel('usuario/login', 'uobj');
        $corpo = "<h1>".SITE_NOME." - Cadastro de usuário</h1>";
        if($this->uobj->IsLoged()){
            $usertry  = $this->uobj->getItem($this->uobj->getCodUsuario());
            $nome     = $this->uobj->getUserNick($usertry);
            $mail     = $usertry['email']; 
            $corpo   .= "
                        <style>h2{color:red;}</style>
                        <h2>Inscrição feita no site</h2>
                            <p>
                                <b>Usuário</b> que fez o cadastro: $nome <br/> 
                                <b>Email</b> do usuário: $mail 
                            </p><hr/>";
            $msg = "Usuário cadastrado com sucesso";
            
        }else{
            $corpo .= "<h2>Inscrição feita no site</h2><p>Obrigado por se inscrever em nosso site.</p>";
            $msg = "Um email de cadastro foi enviado para o email.".$user['email']."
                    Acesse o email e clique no link enviado para ter acesso ao site";
        }
        
        $corpo .= "<h2>Dados de Acesso</h2>
                   <p>Login: ".$user['email']." </p>
                   <p>Senha: ".$user['senha']." </p>
                   <p>Para concluir o seu registro <b><a href='$link'>clique aqui</a></b></p>
                   <hr/><p>Caso não consiga visualizar o link acima: $link</p>
                ";

        //se não conseguiu enviar o alerta
        if(!$this->al->alertar($assunto, $corpo, $user['email'])){
            if(!$this->uobj->IsLoged()){
                $this->uobj->Login($user['email'], $user['senha']);
            }
            if(!$this->uobj->IsLoged()) $msg = "Você foi cadastrado no site corretamente!";
            else $msg = "Usuário cadastrado no site corretamente! Porém ocorreu alguma falha ao notificá-lo por email.";
            
        }
        $this->setSuccessMessage($msg);
        return true;
    }
    
    public function resend_confirmation($user){
        
        $ur     = $user['cod_usuario']."-".$user['confirmkey'];
        $link   = $this->html->getLink("usuario/login/confirmar/$ur");
        $corpo  = "
            <h2>Pedido de Confirmação</h2>
            <p>Caro usuário seu email ainda não foi confirmado em nosso site, por favor 
                <a href='$link'>clique aqui</a> para confirmar seu email</p>
            <hr/>
            <p>Caso não consiga visualizar o link acima: $link</p>
        ";

        //se não conseguiu enviar o alerta
        if(!$this->al->alertar("Pedido de Confirmação", $corpo, $user['email'], array(), false)){
            $this->setErrorMessage("Não foi possível enviar a confirmação para o seu email");
            return false;
        }
        
        $this->setSuccessMessage("O email de confirmação foi enviado com sucesso!");
        return true;
    }
    
    public function editar($user, $old_user){
 
        //prepara o email
        $link    = $this->html->getLink("usuario/login/recuperar/");
        $assunto = "Alterações nos dados ".SITE_NOME;
        
        $corpo = "";
        $this->LoadModel('usuario/login', 'uobj');
        $usuariotry  = $this->uobj->getItem($this->uobj->getCodUsuario());
        $nome        = $this->uobj->getUserNick($usuariotry);
        $mail        = $usuariotry['email'];
        if($usuariotry['email'] != $user['email'])
            $corpo  .= "<p> Alterações feitas em sua conta pelo usuário: $nome, email: $mail </p><hr/>";
        
        if($user['email'] != $old_user['email'])
            $corpo  .= "<p> O seu email de acesso foi alterado, o novo email é: ".$user['email'].". </p><hr/>";
        
        $corpo = "
          <p>Olá ".$user['user_name']."</p> 
          <p>
          Seus dados foram alterados recentemente no site ".SITE_NOME." em ".timeResource::getFormatedDate().". <br/>
              Como medida de segurança, essa notificação foi enviada ao seu endereço de email. 
              Se foi você quem fez estas mudanças desconsidere este email.
          </p>
                $corpo
          <hr/>
          <p>
            Se esta mudança não foi autorizada por você, pode ter ocorrido alguma tentativa de fraude em sua conta.
            Acesse <a href='$link'>este link</a> para obter novamente o controle da sua conta.
            <br/>Caso seu cliente de email não permita a visualização do link acima, acesse: $link.
          </p>
         ";
        
        
        //se ocorreu alguma falha ao enviar o email
        $msg = "Informações da conta alteradas com Sucesso!";
        if(!$this->al->alertar($assunto, $corpo, $old_user['email'], array(), false)) {
            $this->setMessages($this->al->getMessages());
        }
        
        $this->setSuccessMessage($msg);
        return true;
    }

    public function RecoverPassword($value, $confirmkey){

        //recupera o corpo e o assunto do email
        $this->LoadResource("html", 'Html');
        $link    = $this->Html->getLink("usuario/login/confirmrec/".$value['cod_usuario']."-$confirmkey");
        $assunto = "Recuperação de senha";
        $corpo = "
            <p>Foi feita um pedido de recuperação de senha no site ".SITE_NOME."</p>
            <p>Caso não tenha sido solicitado por você desconsidere este email</p>
            <p>Para concluir a recuperação de senha <a href='$link'>clique aqui</a></p>
            <hr/><p>Caso não consiga visualizar o link acima: $link </p>";

        //se nao conseguiu enviar email
        $this->LoadModel('contato/alertas', 'al');
        if(!$this->al->alertar($assunto, $corpo, $value['email'], array(), false)){
            $this->setMessages($this->al->getMessages());
            $this->setSuccessMessage("Para concluir a recuperação de senha <a href='$link'>clique aqui</a>");
        }
        else $this->setSuccessMessage("Um email de confirmação foi enviado. Acesse o seu email e clique no link indicado para recuperar sua senha");

        return true;
    }

    public function ConfirmRecoverPassword($value, $senha){
        //recupera o corpo e o assunto do email
        $this->LoadResource("html", 'Html');
        $link1   = $this->Html->getLink("usuario/login/senha");
        $link2   = $this->Html->getLink("usuario/login/");
        $assunto = "Nova senha do site ". SITE_NOME;
        $corpo   = "
            <p>Caro usuário, <br/> Uma solicitação de recuperação de senha foi enviada para o nosso site. </p>
            <p>Sua nova senha é: $senha</p><hr/>
            <p>Para alterar sua senha <a href='$link1'>clique aqui</a></p> 
            <p>Para acessar sua conta <a href='$link2'>clique aqui</a></p>
            <hr/>
            Caso não consiga visualizar os links acima:
            <p>Recuperar senha $link1 </p>
            <p>Acessar conta $link2 </p>
        ";

        //se nao conseguiu enviar email
        $this->LoadModel('contato/alertas', 'al');
        if(!$this->al->alertar($assunto, $corpo, $value['email'], array(), false)){
            $this->setAlertMessage("Ocorreu um erro no servidor ao enviar uma notificação para o seu email");
            $this->setSuccessMessage("Sua nova senha é: $senha");
        }else $this->setSuccessMessage("Um email foi enviado para você com sua nova senha");

        return true;
    }
    
}

?>
